#ifndef DIJKSTRATESTER_H
#define DIJKSTRATESTER_H

#include <string>
#include <iostream>
#include "PriorityQueue.h"
#include "Dijkstra.h"
#include "ErrorPrinter.h"
#include "Tester.h"

class DijkstraTester : public Tester {
public:
  unsigned long long time(std::istream &test, algo::PriorityQueue<algo::DijkstraHeapNode> &Q);
  void timeFile(const std::string &folder);
  void timeFolder(const std::string &folder);

  void test(const std::string &test, algo::PriorityQueue<algo::DijkstraHeapNode> &Q);
  void test(std::istream &test, algo::PriorityQueue<algo::DijkstraHeapNode> &Q);
  void testFile(const std::string &file);
  void testFolder(const std::string &dir);

private:
  ErrorPrinter errors;
};

#endif // DIJKSTRATESTER_H
